package com.xy.blog.core.converter.mapstruct;

import com.xy.blog.core.springmvc.result.page.PageResp;
import org.mapstruct.IterableMapping;

import java.util.List;

/**
 * @author zanhonglei
 * @version V1.0
 * @Description: mapstruct基础实体转换类
 * @date 2020/3/4
 */
public interface BaseCommonConverter<DTO,BO,DO> {
    /**
     * 数据实体转换
     * @param item
     * @return
     */
    @IterableMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
    DTO bo2dto(BO item);
    BO do2Bo(DO item);
    DO bo2Do(BO item);
    BO dto2Bo(DTO item);

    List<BO> do2Bo(List<DO> list);

    @IterableMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
    List<DTO> bo2dto(List<BO> list);

    /**
     * 分页实体转换
     * @param item
     * @return
     */
    @IterableMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
    PageResp<DTO> bo2dto(PageResp<BO> item);
    PageResp<BO> do2Bo(PageResp<DO> item);
    PageResp<DO> bo2Do(PageResp<BO> item);


}
